Ranking search results

ABSTRACT

Methods, systems, computer readable media, and apparatuses for ranking search results are presented. According to one or more aspects, two or more search results may be ranked based on the extent to which each search result matches at least one search criterion and based on the amount of time that content corresponding to each search result will remain available. Content with less availability time remaining may be ranked higher than content with more availability time remaining. The ranking may also be based on a genre of the content being ranked, and availability may be weighted differently in ranking content of different genres.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/350,185, which was filed Jun. 1, 2010, andentitled “Relevance Ranking of Content Search Results,” and which isincorporated by reference herein in its entirety as a non-limitingexample embodiment.

BACKGROUND

Watching television historically has been a favorite pastime. As timewent by and technology improved, new features like the video cassetterecorder, on-screen program guide, and digital video recorder have givenviewers more options and control over their viewing experience, therebyenriching that experience. As technology continues to improve, therewill always be a demand for increased flexibility and functionalities inthe viewing experience, particularly as an increasingly large amount ofcontent becomes available to viewers. The present disclosure offers avariety of features to further enrich the experience of a viewer or anyother consumer of content.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some aspects of the disclosure. The summary is not anextensive overview of the disclosure. It is neither intended to identifykey or critical elements of the disclosure nor to delineate the scope ofthe disclosure. The following summary merely presents some concepts ofthe disclosure in a simplified form as a prelude to the descriptionbelow.

Aspects of this disclosure relate to ranking search results. Accordingto one or more aspects, two or more search results may be ranked basedon the extent to which each search result matches at least one searchcriterion and based on the amount of time that content corresponding toeach search result will remain available. In some arrangements, contentwith less availability time remaining may be ranked higher than contentwith more availability time remaining.

In addition, the ranking may also be based on a genre of the contentbeing ranked, and availability may be weighted differently in rankingcontent of different genres. For example, in at least one arrangement,the rank of a live sporting event included in the search results maygradually increase as time elapses towards the event's conclusion, whilethe rank of a movie included in the search results may graduallydecrease as time elapses towards the movie's conclusion.

In some arrangements, the content may be linear video programming, andwith respect to this type of content, content may remain available untila scheduled end time associated with the content. Additionally oralternatively, the content may be video on demand programming, and withrespect to this type of content, that content may remain availableduring a window of time in which the content is accessible at therequest of a user.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example and not limitedin the accompanying figures in which like reference numerals indicatesimilar elements and in which:

FIG. 1 illustrates an example information distribution network accordingto one or more aspects described herein.

FIG. 2 illustrates an example hardware platform on which the variouselements described herein may be implemented according to one or moreaspects described herein.

FIG. 3 illustrates an example of a linear programming availabilitytimeline according to one or more aspects described herein.

FIG. 4 illustrates an example of an on-demand programming availabilitytimeline according to one or more aspects described herein.

FIG. 5 illustrates an example of a method that may be implemented as aprocessing loop for ranking search results according to one or moreaspects described herein.

FIG. 6 illustrates an example of a method that may be implemented as aconfiguration method in the processing loop for ranking search resultsaccording to one or more aspects described herein.

FIG. 7 illustrates an example of a method that may be implemented as asearch method in the processing loop for ranking search resultsaccording to one or more aspects described herein.

FIG. 8 illustrates an example of a user interface that includes alisting of default profiles according to one or more aspects describedherein.

FIG. 9 illustrates an example of a user interface that includes a menuaccording to one or more aspects described herein.

FIG. 10 illustrates an example of a user interface that includes a menufor prioritizing linear content according to one or more aspectsdescribed herein.

FIG. 11 illustrates an example of a user interface that includes a menufor prioritizing segments of linear content according to one or moreaspects described herein.

FIG. 12 illustrates an example of a user interface that includes a menufor prioritizing on-demand content according to one or more aspectsdescribed herein.

FIG. 13 illustrates an example of a user interface that includesadditional options for prioritizing linear and on-demand contentaccording to one or more aspects described herein.

FIG. 14 illustrates an example of a user interface that includes aprogram guide according to one or more aspects described herein.

FIG. 15 illustrates an example of a user interface that includesautomatically ranked search results according to one or more aspectsdescribed herein.

FIG. 16 illustrates an example of a user interface that includes asearch box according to one or more aspects described herein.

FIG. 17 illustrates an example of a user interface that includes rankedsearch results according to one or more aspects described herein.

DETAILED DESCRIPTION

In the following description of various illustrative embodiments,reference is made to the accompanying drawings, which form a parthereof, and in which is shown, by way of illustration, variousembodiments in which aspects of the disclosure may be practiced. It isto be understood that other embodiments may be utilized, and structuraland functional modifications may be made, without departing from thescope of the present disclosure.

Aspects of this disclosure may relate to computer processing andnetworking technologies, broadband communications technologies,satellite communications technologies, fiber-optic communicationstechnologies, video processing technologies, and/or multimedia computingtechnologies. In particular, aspects of this disclosure may relate tosearching content, such as audio and video content (e.g., video ondemand, movies, songs, scheduled television programs, etc.), and toranking the search results for the user.

1. Example Use Scenarios

The following discussion describes some examples of searching andranking that may be achieved using one or more features describedherein.

In some aspects, a search for television, video, audio, movie, or otherdata content may be conducted using any desired program guide interface,such as a program guide provided via a device such as a service gateway,a television set-top box (STB), a digital video recorder (DVR), apersonal computer, a mobile device, etc. The search may use criteriaprovided by a user, such as keywords, titles, actors, genre, etc., tofind content that will be of most interest to the user. The results ofthe search can be displayed on any device or medium, such as aninterface of the program guide, and can be ranked according to contenttype (e.g., action, sports, kids, etc.), and the ranking can, forexample, take into account availability times or start times, resultingin a recency-based ranking For example, all other things being equal, amovie about to end in 5 minutes may be deemed less relevant than asporting event (e.g., football game) that is about to end in 5 minutes,since the last 5 minutes of a sporting event (which may contain anexciting finish, and since most users primarily care only about theoutcome of the game) may be of more interest or value to a new viewerthan the last 5 minutes of a movie (which may only contain the endcredits, or which may spoil the ending for a viewer who has not seen therest of the movie). Similarly, a movie that has only just begun may bedeemed more relevant to a new user than a movie that is only 5 minutesfrom the end. In fact, a new viewer might want to avoid the last 5minutes of a movie, for fear of spoiling the ending, and may wish towatch the other movie instead.

A search engine described herein may take into account a scheduledavailability time for content matching search criteria, to determine atime-based relevance ranking. As a result, the engine may boosttime-sensitive results to the top of the search results set, and reducethe weight of search results that are less interesting and/or lesstime-sensitive to the user. In this manner, a user may more quickly findcontent of most interest at the moment of the search (e.g., a sportingevent may become more interesting to the user if the event is about toend).

The search engine may first store availability time information forvarious types of content, such as linear video content that istransmitted or broadcast according to a predefined schedule, as well ascontent that is available on demand to the user, such as a movie ondemand. For linear content, the engine may store the channel (e.g.,service provider), availability date (e.g., transmission or broadcastdate), time and region for the content. For on demand content, theengine may store the date and time at which the content was initiallymade available to users for on demand access, and the date and time atwhich the content will no longer be available for on demand access(e.g., if a video on demand movie is available for a limited time, thenthe start and end date and time of this availability may be stored).

When the user wishes to conduct a search, the user can enter the searchcriteria to the engine. This can be done, for example, by choosingpredefined criteria (e.g., predefined categories, genre, popularity,type, actors, title, etc.), and/or by entering new criteria (e.g.,keywords). The engine can initially gather a candidate pool of searchresults based on the criteria alone, and can do an initial ranking ofthe results without consideration of availability times. This initialranking can use, for example, popularity, type (movie, TV series, etc.),match quality (e.g., how strong of a match the content had to thekeywords—full word match, partial word match, etc.), and any desiredcriteria.

The initial ranking can then be modified by taking into accountavailability times for linear and on-demand content. In doing so, therelevance of a piece of content may be modified, for example, asfollows:

-   -   a. Increase the relevance rank of sporting events that are close        to ending. For example, if the genre is “sports,” and the        scheduled end time is within a predetermined time (e.g., 10        minutes) from the current time, then the content's relevance        rank may be increased by a predetermined amount. The amount        increased can vary depending on whatever scale the system        chooses to use.    -   b. Decrease the relevance rank of non-sporting events that are        close to ending. For example, if the content's genre is anything        other than “sports”, and the scheduled end time is within the        predetermined time from the current time, then the ranking can        be reduced by a predetermined amount. Different types of content        may be decreased at different rates. For example, comedies and        murder mysteries may be treated differently, since the last 5        minutes of those types of movies can be of different value.    -   c. Increase the relevance rank of linear content airing or        otherwise becoming available for playback within the next hour.        For example, content that is being broadcast or otherwise        transmitted at a scheduled time that is within a predetermined        time from the current time (e.g., the next hour) may have their        relevance increased by a predetermined amount. Conversely,        linear content that will not be broadcast or transmitted within        a predetermined time (e.g., a show that won't air or otherwise        become available for playback for at least 2 days) may have its        relevance ranking reduced. In other words, shows that are about        to start can be ranked higher than shows that have already        started, or that are starting a long time from now.    -   d. Increase the relevance rank of on demand content that will        become unavailable soon. For example, if two on-demand movies        come up in the initial search, and the first is only available        until tomorrow and the other is available for two more weeks,        then the first movie may have its relevance rank increased to        help the user avoid missing out on it. The second movie may have        its relevance rank reduced.

The examples above discuss modifying an initial search ranking. Inalternative embodiments, the initial search can take into account theavailability time modifications discussed above, resulting in an initialsearch list that is ranked with those times in account.

Search engines and related technologies may provide a convenient way oflocating content that may matches one or more search terms specified bya user.

According to one or more aspects, in response to receiving a queryincluding at least one search term, a computing device may search atleast one database for one or more content items associated with the atleast one search term. Subsequently, the computing device may identify,via the searching, the one or more content items in the at least onedatabase associated with the at least one search term. Thereafter, thecomputing device may rank the identified one or more content items basedon a first criterion and a time-based criterion, where the firstcriterion may be different from the time-based criterion. In at leastone arrangement, the first criterion may be genre and the time-basedcriterion may be playback time remaining and/or availability timeremaining.

Additionally or alternatively, a search engine may be provided to searchfor one or more content items, where the content items may be madeavailable via a content server. The search engine may store availabilitytime information for linear content items and video on demand contentitems. For the linear content items, the scheduled availability timeinformation may include, for each content item, the channel, date, timeand/or geographic region of a scheduled transmission (e.g., broadcast)of the content. For the video on demand content items, the availabilitytime information may include, for each content item, the date and/ortime at which the content item may become available and/or the dateand/or time at which the content item may become unavailable.

Subsequently, in such an example system, the search engine may receive aquery (e.g., from a user). In response to receiving the query, thesearch engine may gather, based on the query, a listing of potentialsearch results. Having gathered the listing of potential search results,the search engine then may initially rank the potential search resultswithout considering availability time information. For instance, thesearch engine may rank the potential search results based on otherattributes, such as popularity, content type (e.g., movie, sitcom, livesporting event, prerecorded sporting event, etc.), genre (e.g., comedy,drama, documentary, sports, etc.), and/or match quality (e.g., whether,for any particular content item included in the search results, therewas a full word match, a partial word match, etc.).

Thereafter, in such an example system, the search engine may prioritizethe ranked potential search results based on availability timeinformation (e.g., by re-ranking the potential search results based onavailability time information). In this way, both the availability timeinformation and other attributes, such as those described above, may beused to rank search results. The availability time information and theother attributes may define a content's relevance recency. Thesefunctionalities may provide a more convenient experience to a user who,for instance, may be deciding whether to watch a movie on one channel orthe end of a playoff basketball game on another channel.

Thus, in one or more arrangements, the search engine and/or otherfeatures of such an example system may be configured such that asporting event that is nearing its conclusion (e.g., a live basketballgame with less that five minutes to play in the final quarter) may begiven higher priority (e.g., an increased rank), while a prerecordedprogram that has already started (e.g., a movie that is already halfwayover) may be given lower priority (e.g., a decreased rank). In at leastone arrangement, the search engine may consider the score of thesporting event in prioritizing and/or ranking the search results (e.g.,the live basketball game may be given higher priority if the game istied or within eight points, but lower priority if one team is leadingthe other by more than eight points). In addition, as betweenprerecorded programs, one program that is beginning in the next hour maybe prioritized over another program that is beginning in two days.

In one or more additional arrangements, with respect to video on demandcontent that may be available via such an example system, the searchengine and/or other features of the system may be configured such that acontent item that will only be available for another week may beprioritized over another content items that will be available foranother two months.

By implementing one or more aspects of such an example system, a contentprovider may be able to provide or make accessible more relevant and/ortime-sensitive search results to a user. Accordingly, a user may be ableto easily and efficiently search, discover, and/or consume more relevantand/or time-sensitive content items.

Various other features and/or components may be included in and/orincorporated into such an example system. For example, in at least onearrangement, the search engine may receive a query (e.g., from a user).In response to receiving the query, the search engine may store thequery for later use (e.g., in a database) and may gather, based on thequery, a listing of potential search results. Thereafter, the searchengine may rank and/or prioritize the search results, as furtherdescribed above. In addition, the search engine may prompt a user todetermine whether the user would like to configure the search engine toupdate the search results on a particular basis (e.g., by performing thesearch and/or gather search results according to a user-definedschedule, such as daily, weekly, monthly, etc.). Additionally oralternatively, the search engine simply may save the query such that theuser may easily run the query again at a later time without having toreenter the query (e.g., by displaying the saved query as auser-selectable menu item and/or in a user-selectable list).

Using this methodology, a user may be able to be regularly apprised ofthe most recent (and/or most prioritized) content items related to theirquery. For instance, a user may configure the system to perform a dailysearch (e.g., nightly at 8 p.m.) for comedic sitcoms set in New York,reality shows that include certain celebrities, and/or cooking showsthat feature vegetarian dishes. In another instance, a user mayconfigure the system to perform a weekly search for on-demand moviesfeaturing certain actors or set in certain places. Moreover, after thesearch is performed, the search engine may display the search resultsmatching the particular query and sort the search results by recency.For example, where the user configures the system to perform a weeklysearch for on-demand movies featuring certain actors or set in certainplaces, the search engine may display the movies matching the query inthe order that each movie will later be made unavailable or removed fromthe content server (e.g., by ascending unavailability date).

2. Hardware and Architecture

FIG. 1 illustrates an example information distribution network 100 inwhich many of the various features described herein may be implemented.Network 100 may be any type of information distribution network, such assatellite, telephone, cellular, wireless, etc. One example may be anoptical fiber network, a coaxial cable network, or a hybrid fiber/coaxdistribution network. Such networks 100 use a series of interconnectedcommunication lines 101 (e.g., coaxial cables, optical fibers, wireless,etc.) to connect multiple premises 102 (e.g., businesses, homes,consumer dwellings, etc.) to a central office or headend 103. Thecentral office 103 may transmit downstream information signals onto thelines 101, and each home 102 may have a receiver used to receive andprocess those signals.

There may be one line 101 originating from the central office 103, andit may be split a number of times to distribute the signal to varioushomes 102 in the vicinity (which may be many miles) of the centraloffice 103. The lines 101 may include components not illustrated, suchas splitters, filters, amplifiers, etc. to help convey the signalclearly, but in general each split introduces a bit of signaldegradation. Portions of the lines 101 may also be implemented withfiber-optic cable, while other portions may be implemented with coaxialcable, other lines, or wireless communication paths. By running fiberoptic cable along some portions, for example, signal degradation inthose portions may be significantly minimized, allowing a single centraloffice 103 to reach even farther with its network of lines 101 thanbefore.

The central office 103 may include a termination system (TS) 104, suchas a cable modem termination system (CMTS), which may be a computingdevice configured to manage communications between devices on thenetwork of lines 101 and backend devices such as servers 105-107 (to bediscussed further below). The TS may be as specified in a standard, suchas the Data Over Cable Service Interface Specification (DOCSIS)standard, published by Cable Television Laboratories, Inc. (a.k.a.CableLabs), or it may be a similar or modified device instead. The TSmay be configured to place data on one or more downstream frequencies tobe received by modems at the various homes 102, and to receive upstreamcommunications from those modems on one or more upstream frequencies.The central office 103 may also include one or more network interfaces108, which can permit the central office 103 to communicate with variousother external networks 109. These networks 109 may include, forexample, networks of Internet devices, telephone networks, cellulartelephone networks, fiber optic networks, local wireless networks (e.g.,WiMAX), satellite networks, and any other desired network, and theinterface 108 may include the corresponding circuitry needed tocommunicate on the network 109, and to other devices on the network suchas a cellular telephone network and its corresponding cell phones.

As noted above, the central office 103 may include a variety of servers105-107 that may be configured to perform various functions. Forexample, the central office 103 may include a push notification server105. The push notification server 105 may generate push notifications todeliver data and/or commands to the various homes 102 in the network (ormore specifically, to the devices in the homes 102 that are configuredto detect such notifications). The central office 103 may also include acontent server 106. The content server 106 may be one or more computingdevices that are configured to provide content to users in the homes.This content may be, for example, video on demand movies, televisionprograms, songs, text listings, etc. The content server 106 may includesoftware to validate user identities and entitlements, locate andretrieve requested content, encrypt the content, and initiate delivery(e.g., streaming) of the content to the requesting user and/or device.

The central office 103 may also include one or more application servers107. An application server 107 may be a computing device configured tooffer any desired service, and may run various languages and operatingsystems (e.g., servlets and JSP pages running on Tomcat/MySQL, OSX, BSD,Ubuntu, Redhat, HTML5, JavaScript, AJAX and COMET). For example, anapplication server may be responsible for collecting television programlistings information and generating a data download for electronicprogram guide listings. Another application server may be responsiblefor monitoring user viewing habits and collecting that information foruse in selecting advertisements. Another application server may beresponsible for formatting and inserting advertisements in a videostream being transmitted to the homes 102. And as will be discussed ingreater detail below, another application server may be responsible forenabling chat sessions.

An example premises 102 a, such as a home, may include a modem 110,which may include transmitters and receivers used to communicate on thelines 101 and with the central office 103. The modem 110 may be, forexample, a coaxial cable modem (for coaxial cable lines 101), a fiberinterface node (for fiber optic lines 101), or any other desired modemdevice. The modem 110 may be connected to, or be a part of, a gatewayinterface device 111. The gateway interface device 111 may be acomputing device that communicates with the modem 110 to allow one ormore other devices in the home to communicate with the central office103 and other devices beyond the central office. The gateway 111 may bea set-top box (STB), digital video recorder (DVR), computer server, orany other desired computing device. The gateway 111 may also include(not shown) local network interfaces to provide communication signals todevices in the home, such as televisions 112, additional STBs 113,personal computers 114, laptop computers 115, wireless devices 116(wireless laptops and netbooks, mobile phones, mobile televisions,personal digital assistants (PDA), etc.), and any other desired devices.Examples of the local network interfaces include Multimedia Over CoaxAlliance (MoCA) interfaces, Ethernet interfaces, universal serial bus(USB) interfaces, wireless interfaces (e.g., IEEE 802.11), Bluetoothinterfaces, and others.

FIG. 2 illustrates general hardware elements that can be used toimplement any of the various computing devices discussed above. Thecomputing device 200 may include one or more processors 201, which mayexecute instructions of a computer program to perform any of thefeatures described herein. The instructions may be stored in any type ofcomputer-readable medium or memory, to configure the operation of theprocessor 201. For example, instructions may be stored in a read-onlymemory (ROM) 202, random access memory (RAM) 203, removable media 204,such as a Universal Serial Bus (USB) drive, compact disk (CD) or digitalversatile disk (DVD), floppy disk drive, or any other desired electronicstorage medium. Instructions may also be stored in an attached (orinternal) hard drive 205. The computing device 200 may include one ormore output devices, such as a display 206 (or an external television),and may include one or more output device controllers 207, such as avideo processor. There may also be one or more user input devices 208,such as a remote control, keyboard, mouse, touch screen, microphone,etc. The computing device 200 may also include one or more networkinterfaces, such as input/output circuits 209 (such as a network card)to communicate with an external network 210. The network interface maybe a wired interface, wireless interface, or a combination of the two.In some embodiments, the interface 209 may include a modem (e.g., acable modem), and network 210 may include the communication lines 101discussed above, the external network 109, an in-home network, aprovider's wireless, coaxial, fiber, or hybrid fiber/coaxialdistribution system (e.g., a DOCSIS network), or any other desirednetwork.

Various features described herein may enable search results to beranked, for example, when a user searches for content accessible fromthe central office 103. Particular aspects of the disclosure may relateto transmissions between a central office 103 and one or more gateways111. These and other aspects of the disclosure will be described indetail below.

3. Search and Flow

Before the methods and user interfaces that may be used in rankingsearch results are described, the example programming timelinesillustrated in FIGS. 3 and 4 will be described to provide some contextfor the various concepts related to ranking search results describedbelow. In particular, the following discussion and the exampleprogramming timelines of FIGS. 3 and 4 may illustrate how the time atwhich a search for content is executed can impact the degree to whichparticular search results are more or less relevant than other searchresults.

For example, FIG. 3 illustrates an example of a linear programmingavailability timeline 300 according to one or more aspects describedherein. The timeline 300 illustrates how the scheduled start and endtimes of various programs (e.g., linear programs 301, 302, 303, and 304)may relate to each other. For instance, program 301 may correspond to alive broadcast of a professional football game that is scheduled tostart at 8 p.m. and end at 11:00 p.m., and program 302 may correspond toa live broadcast of a professional baseball game that is scheduled tostart at 5:30 p.m. and end at 8:30 p.m.

If, at 8:11 p.m. for instance, a user of a content receiver (e.g.,gateway 111) were to search for content including the words “New York”in the title, the results of such a search may include programs 301,302, 303, and 304. In addition, as may be seen in FIG. 3, the time atwhich the search 305 is executed may affect how much time has elapsedand how much time is remaining in each program. According to one or moreaspects of the disclosure, before these program search results arepresented to the user, the search results may first be ranked based ontheir time availability, and this may take into account how much timehas elapsed in each program, how much time is remaining in each program,and other factors (e.g., the genre of each program, whether the programis live or prerecorded, etc.).

For example, when presenting the results for the example search 305,which may represent a search at 8:11 p.m. for programming titles thatinclude the words “New York,” it may be desirable to more highly rankprogram 304 (which has yet to begin at 8:11 p.m.) than program 303(which is already underway at 8:11 p.m.) because the user might not wantto start watching the program in the middle of the show having missedthe beginning. On the other hand, a user might be more interested in theconclusion of live sports programming than the beginning of suchprogramming, and it accordingly may be desirable to more highly rankprogram 302 (which represents a baseball game that is nearing itsscheduled end at 8:11 p.m.) than program 301 (which represents afootball game that has only just started at 8:11 p.m.). In addition, theuser further may set other preferences that affect the ranking of searchresults, for instance, by prioritizing certain genres of content overother genres of content (e.g., the user may specify that he or she ismore interested in the start of football games than the end of baseballgames, that live content should always be ranked higher than prerecordedcontent, that sports content should be ranked higher than movies, etc.).

The steps that may be performed by a computing device in providing thesefunctionalities, and the user interfaces that may be used inimplementing the same, are further described in greater detail below. Asan overview, however, this prioritization and ranking may beaccomplished by assigning each search result a baseline score thatcorresponds to the degree to which the search result matches the user'ssearch criteria, and then upwardly or downwardly adjusting these scoresbased on time availability and/or user preferences.

FIG. 4 illustrates how similar concepts may be applied to ranking searchresults when dealing with on-demand content. On demand content may haveits own time availability value, but the time availability may bedifferently defined than that of linear content. Unlike linear content,which may be transmitted to all users at a scheduled start time andavailable only during such transmission, on-demand content might beavailable to a user for playback at any desired time during apredetermined time window during which the content is offered. Forinstance, as seen in the example on-demand content timeline 400, someprograms might be available to a user for playback during certain timeperiods, but not others. Typically, on-demand content is available for apredetermined numbers of days or weeks. For example, a movie may beavailable for on demand purchase after the movie's theatrical run isover, but before the movie is available on subscription services likeHBO.

In view of the differences between on-demand and linear content, whenranking search results for on-demand content by time availability, itmight be desirable to consider at least some different factors than whenranking search results for linear content. In particular, when dealingwith on-demand content, the user is usually able to start playback ofthe content from the beginning of such content (e.g., the start of themovie, the beginning of the show, etc.). Thus, a central concern whenranking search results for on-demand content might not be how much timehas elapsed in the programming (since the user may simply start playbackof the content at its beginning), but rather how much longer the userhas the ability to play back and view such content. For instance, whenranking search results for on-demand content, it may be desirable tomore highly rank content that will be available to the user for lesstime (e.g., content nearing its expiration date) rather than contentthat will be available to the user for more time.

For example, considering the illustration presented in FIG. 4, a usermight search for comedy movies, and programs 401, 402, 403, and 404might be on-demand content items matching the user's search request. Theexample search 405 may be executed on September 20, and while each ofthe example programs 401, 402, 403, and 404 are available for playbackon that date, each may have a different date after which it will becomeunavailable. As noted above, in ranking search results for on-demandcontent, it may be desirable to more highly rank content that will beavailable to the user for less time than content that will be availableto the user for more time. Accordingly, when presenting the results ofthe example search 405 to the user, the user's computing device (e.g.,gateway 111) may rank program 402 as having the highest priority (e.g.,because among the matching search results, program 402 will becomeunavailable for playback first), followed by program 404 and program401, with program 403 having the lowest priority. As with the ranking oflinear search results, other factors (e.g., the genres of variouson-demand content items, user preferences, etc.) besides theavailability of content also may affect how the search results areultimately ranked. For instance, the user may set preferences specifyingthat movie previews be ranked lower than actual movies, which in theexample above, may result in program 401 being prioritized lower thanthe other three programs in the example search results. Again, anyand/or all of this ranking may be accomplished by first assigning abaseline score to each search result (e.g., based on how strongly itmatches search criteria), and then upwardly or downwardly adjusting thescore based on time availability and/or user preferences.

Having set the stage for how search results may be ranked based on theavailability of content, the various steps that may be performed by acomputing device in providing these functionalities, and the userinterfaces that may be used in implementing the same, will now bedescribed. In one or more arrangements, any and/or all of the methodsdescribed herein may be performed by a computing device, such ascomputing device 200 or gateway interface device 111, and/or stored ascomputer-executable instructions in a computer-readable medium, such asROM 202, RAM 203, removable media 204, and/or hard drive 205. Inaddition, any and/or all of the user interfaces described herein may beimplemented in, displayed by, and/or caused to be displayed by acomputing device, such as computing device 200 or gateway interfacedevice 111, and/or stored as computer-executable instructions in acomputer-readable medium, such as ROM 202, RAM 203, removable media 204,and/or hard drive 205.

Referring now to FIG. 5, a central processing loop that may be performedby a user device (e.g., gateway 111) in ranking search results accordingto one or more aspects described herein is illustrated. When a user'sdevice (e.g., gateway 111) is initially powered on, for instance, and isto begin executing the example method illustrated in FIG. 5, the processmay begin at step 501 of the method. In step 501, default profiles maybe loaded. For example, the user's device (e.g., gateway 111) may beshipped from the manufacturer or service provider to the user with aplurality of default settings related to searching content and/or othermatters, and these settings may be loaded into memory from a storagemedium included in the user's device and/or downloaded from a remoteserver that the user's device may communicate with electronically via anetwork (e.g., application server 107). Additionally or alternatively,the user's preferences from a previous session may be loaded at thispoint, as the user may have previously modified the default settings tocustomize a variety of aspects of his or her user experience, such ashow content is searched and how search results are ranked.

Some possible preferences that may be specified in a default profile orin a profile modified by a user are illustrated in the example userinterface illustrated in FIG. 8. As may be seen in example userinterface 800 of FIG. 8, these preferences may allow the user toprioritize particular types and/or genres of content, among otherthings. Additionally or alternatively, these preferences may allow theuser to assign a numerical weight to the different preferences, suchthat where two preferences result in increasing the search resultranking or priority of different types and/or genres of content, theassigned numerical weight of the preferences may control which typeand/or genre of content receives a greater increase in search resultranking or priority. For instance, per the illustrative settings inexample user interface 800, content matching option 802 may be weighted(and increased in rank) more than content matching option 801, becausethe user may have assigned a rank of “1” of option 802 and a rank of “2”to option 801. In other configurations, options 801, 802, 803, and 804might all be checkboxes, and a user might not assign weights to suchoptions.

In one or more arrangements, one possible option 801 may allow the userto specify that the priority or rank of on-demand content should beincreased when it has less remaining availability time than otheron-demand content being searched (e.g., when an on-demand program, suchas an on-demand movie, is nearing the date that it will be madeunavailable or removed from the catalog of available on-demand titles).Another possible option 802 may allow a user to specify that thepriority or rank of live linear content should be increased when it hasless remaining availability time than other linear content beingsearched (e.g., when a live linear program, such as a live broadcast ofa football game, is nearing its end).

Still another option 803 that may, for example, be included in a defaultprofile may allow a user to specify that the priority or rank ofprerecorded linear content (e.g., prerecorded television shows stored onand/or transmitted by a central server, as opposed to live programming,for instance) should be decreased when it has less remainingavailability time than other linear content being searched (e.g., when aprerecorded linear program, such as a movie or sitcom, is alreadyunderway and perhaps nearing its conclusion). Yet another option 804 mayallow a user to specify that after content is searched and ranked searchresults are presented, if a user selects a prioritized on-demand contentitem for playback, the user's device should automatically schedule arecording of the first linear content item in the prioritized list thatwas not selected for playback (e.g., if the user chooses to playback aprioritized on-demand movie, the user's device should schedule arecording, using an included digital video recorder for instance, of thelinear content item with the highest priority, which may be a sitcomthat has yet to start). These preferences may be further customized andmodified to be even more specific using the user interfaces furtherdescribed below. For example, preferences may be specified to prioritizecertain programs based on genre (as described below with respect toFIGS. 10 and 12), particular segments of programs may be prioritizedover others (as described below with respect to FIG. 11), and/or otherpreferences may be specified by the user.

Returning now to the example method illustrated in FIG. 5, once thedefault profiles or the user's modified profiles are loaded in step 501,the process may proceed to step 502 where it may be determined whether aconfiguration request was received. Such a configuration request may bereceived as input from a user via a user interface (e.g., if a userenters a request to edit settings, view a preferences menu, etc.). FIG.9 illustrates an example user interface 900 by which such aconfiguration request may be received.

As seen in FIG. 9, user interface 900 may include displayed content 901,which may be linear or on-demand content being received and played backby the user's device (e.g., gateway 111). In addition, user interface900 may include a status overlay 902, which may indicate the currentchannel and/or program being played, and a menu 903, which may include aplurality of selectable options. If, for example, the user were to usecursor 904 to select the “Preferences Menu” option in menu 903, thisselection may constitute the configuration request addressed in step502.

Returning again to the example method illustrated in FIG. 5, if it isdetermined in step 502 that a configuration request was received, thenin step 503, a configuration method may be performed. According to oneor more aspects, performing such a configuration method may involveperforming the example method illustrated in FIG. 6, which is furtherdescribed below. On the other hand, if it is determined in step 502 thatno configuration request was received, then the process may proceed tostep 504.

Before continuing with the description of the central processing loopillustrated in FIG. 5, the configuration method illustrated in FIG. 6and its related example user interfaces will first be described. As maybe seen in FIG. 6, several steps may be performed in configuring andcustomizing aspects of the user's experience relating to the searchingof content and the ranking of search results.

In step 601, for example, one or more preferences menus may bedisplayed. The preferences menus may include user interfaces that allowa user of the device (e.g., gateway 111) to further specify how contentis to be searched and how search results are to be ranked. For example,these preferences menus may allow a user to prioritize certain types ofcontent and/or genres of content over other types and/or genres ofcontent in the presentation of search results, as well as certainsegments of programming over other segments. Some examples of suchpreferences menus may be seen in the example user interfaces illustratedin FIGS. 10-13.

For instance, FIG. 10 illustrates an example user interface 1000 thatincludes a preferences menu for modifying settings related to rankinglinear content. In particular, using user interface 1000, a user may beable to assign different priority values (e.g., high, medium, low) todifferent types and/or genres of linear content. When a search issubsequently conducted and search results are presented, these priorityvalues may affect the order and rank of various results (in addition tothe availability of the content corresponding to each result). Forexample, a program of a “high” priority type or genre may be rankedhigher than a program of a “medium” priority type or genre.

Thus, the example user interface 1000 may include a listing 1001 ofvarious types of and/or genres of linear content. By rearranging theorder of the listing 1001 and assigning different priority values toeach type and/or genre of linear content, a user can prioritize thedifferent types and genres of content. In addition, user interface 1000may include various buttons (e.g., buttons 1002, 1003, and 1004) toenable the user to rearrange the listing 1001 and change priorityassignments, save the settings, and close the menu without changing anysettings.

As may be seen in the example listing 1001, the degree of specificity inprioritizing the different types and genres of content may be as smallor as large as desired. For instance, in addition to prioritizingdifferent types and genres of content, a user also may be able toprioritize different sub-types and sub-genres of content (e.g., bysetting user preferences via one or more of the illustrated anddescribed example user interfaces). For example, a user may generallyspecify that “Live News” programming should have a “High” priority, yetmore specifically specify that prerecorded action movies should have ahigher priority than prerecorded comedy movies (e.g., by assigning apriority of “Medium” to prerecorded action movies and by assigning apriority of “Low” to prerecorded comedy movies).

In addition to setting preferences that prioritize certain types andgenres of content over others, a user might also be able to setpreferences that prioritize certain segments of programming over othersegments. For instance, FIG. 11 illustrates an example user interface1100 that includes a preferences menu for modifying settings related toranking certain segments of linear programming over others.

In one or more arrangements, user interface 1100 may include one or moreslider bars, such as slider bars 1101 and 1102, which each may allow auser to set and modify the relative priority of different portions ofcontent of a particular type and/or genre. For example, by adding,removing, and/or modifying the position of the various arrows on sliderbar 1101, the user may prioritize different segments of a linear contentitem corresponding to a live broadcast of a football game. Inparticular, the slider bar (e.g., slider bar 1101) itself may representa timeline corresponding to the entire length of a program of theparticular genre and/or type, and the spaces in between the arrows mayrepresent the variously prioritized segments.

For example, considering the example settings defined by the arrows ofslider bar 1101, various segments of a football game may be assigneddifferent priority levels, such that if a search for programming isexecuted while the football game is being broadcast, the rank of thefootball game in the search results may vary depending on the currentsegment of the football game and its respective assigned priority level.In particular, if a user were to arrange the arrows of slider bar 1101in the manner illustrated in FIG. 11, for instance, and subsequentlyconduct a search for content in which a broadcast of a live footballgame was a search result, the live football game might appear towardsthe top of a ranked list of search results near the beginning of thegame, shortly after halftime, and/or towards the end of the game. On theother hand, if in this example the search were conducted in the middleof the second quarter of the football game, the broadcast might notappear as close to the top of the search results because during thatportion of the program, the assigned priority level for the footballgame is lower.

The example settings defined by the arrows of slider bar 1102 provideanother example of how slider bars may be used to assign differentpriority levels to various portions of a program. For instance, byarranging the arrows of slider bar 1102 in the manner illustrated inFIG. 11, a user may be able to specify that the priority level of a livereality television program should gradually increase as the programnears its end. In some arrangements, this gradual increase in priorityof a live reality television program may be defined by a default profileincluded in the user's device (e.g., gateway 111), and user interface1100 may provide the user with a way to adjust these default settings.The user's device also may include default settings for other types ofprograms as well, and these settings also may correspond to defaultprofiles.

In addition to displaying preferences menus that relate to the rankingof linear content in 601, preferences menus that deal with theprioritization of on-demand content also may be displayed. FIGS. 12 and13 illustrate examples of user interfaces that include such preferencesmenus.

For instance, FIG. 12 illustrates an example user interface 1200 thatincludes a preferences menu for modifying settings relating to rankingon-demand content. Via user interface 1200, a user may be able to assigndifferent priority values (e.g., high, medium, low) to different typesand/or genres of on-demand content. As noted above, these priorityvalues, along with content availability, subsequently may affect theorder and rank of search results when content is later searched for.

Similar to the example user interface illustrated in FIG. 10, userinterface 1200 of FIG. 12 may include a listing 1201 of various typesand/or genres of on-demand content. The listing 1201 may be rearrangedby a user to prioritize different types and genres of content, anddifferent priority values/levels may be assigned to the different typesand genres of content included in the listing 1201. In addition, as wasthe case with user interface 1100, the degree of specificity in definingtypes and/or genres included in the listing 1201 may be varied, suchthat content may be characterized as broadly or as narrowly as desired.For example, a user may specify that “Premium Channel Series”programming should generally have a “Medium” priority, but morespecifically specify that “Premium Drama Series” programming (which maybe a subset of “Premium Channel Series” programming) should have a“High” priority.

Another example user interface that includes a preferences menuaddressing on-demand content is illustrated in FIG. 13. In particular,via user interface 1300 of FIG. 13, a user may be able to set and modifyoptions related to how search results should be handled when suchresults include both linear and on-demand content items.

For example, user interface 1300 may include one or more configurationoptions, such as options 1301 and 1302. In one or more arrangements,option 1301 may, for instance, allow a user to specify that when searchresults are displayed that include both on-demand and linear content,the on-demand content should generally be prioritized over the linearcontent. Another option 1302 may, for example, allow a user to specifythat when on-demand content is selected for viewing from a searchresults listing that also includes linear content, the user's device(e.g., gateway 111) should automatically record the first linear contentitem included in the search results listing (or cause such content to berecorded, e.g., with a digital video recorder).

Returning now to the configuration method illustrated in FIG. 6, afterpreferences menus are displayed in step 601, program prioritizationpreferences (e.g., one or more of the preferences described above withrespect to step 601 and/or set via the above-described user interfacesto prioritize certain types and/or genres of content) may be received instep 602. Such program prioritization preferences may be received, forexample, via the one or more user interfaces displayed in step 601.

Subsequently, in step 603, the program prioritization preferences may bestored. For example, having received the various user preferences viathe user interfaces described above, the user's device (e.g., gateway111) may store the preferences in local memory (e.g., memory included ingateway 111) and/or remotely on a server (e.g., application server 107).Thereafter, the configuration method illustrated in FIG. 6 may end, andthe process may return to the central processing loop illustrated inFIG. 5.

Thus, referring again to the central processing loop illustrated in FIG.5, whether or not the configuration method was performed, it may bedetermined in step 504 whether a search request was received. Such arequest may be received, for instance, via a displayed user interfaceand/or via a physical button on the user's device or an associatedremote control. For example, a user may select a “Search” button of auser interface or press a “Search” button on a remote control associatedwith gateway 111.

If it is determined in step 504 that a search request was received, thenin step 505, a search method may be performed. According to one or moreaspects, performing such a search method may involve performing theexample method illustrated in FIG. 7, which is further described below.On the other hand, if it is determined in step 504 that no searchrequest was received, then the process may proceed to step 506.

Before continuing with the description of the central processing loopillustrated in FIG. 5, the search method illustrated in FIG. 7 willfirst be described. As may be seen in FIG. 7, several steps may beperformed in searching for content and ranking search results.

For example, in step 701, a search user interface may be displayed. Sucha user interface may, for instance, resemble user interface 1600 of FIG.16, which is further described below.

Subsequently, in step 702, a search criterion may be received. Thesearch criterion may, for instance, be a word or phrase (e.g., “NewYork”) or it simply may be a type or genre of content (e.g., “Actionmovies”).

In step 703, content items matching the search criterion may be searchedfor and identified. For example, if the user's device (e.g., gateway111) were to receive the phrase “New York” as the search criterion instep 702, then in step 703, gateway 111 may search a database ofprogramming information for content items that include the phrase “NewYork” in their title, in their description, and/or in other fields, andprograms that include the search phrase may be identified as searchresults. The database of programming information may, for instance, bestored locally by the user's device (e.g., gateway 111) and updatedperiodically based on information received from a server (e.g., a serverat central office 103), and/or the programming information may be storedremotely at the server (e.g., application server 107) and accessed bythe user's device. Additionally or alternatively, each search result maybe assigned a baseline score representing how strongly it matches thesearch criteria, and this may enable ranking of the search results, asfurther described below.

In step 704, the user's device (e.g., gateway 111) may load the programinformation for each search result. Such program information mayinclude, for instance, the title of the program, the scheduled start andstop times of the program, the genre and/or type of the program, and/orthe like. The user's device (e.g., gateway 111) may load thisinformation from the database consulted in step 703. In particular, thedatabase of programming information may include informationcorresponding to the title, description, scheduled start and end times,and/or genre and/or type for each program available for viewing, and theuser's device may load program information corresponding to each searchresult based on information stored in this database.

In step 705, the availability time for each search result may becalculated. In one or more arrangements, how the availability time of aparticular search result is calculated may depend on whether theparticular search result corresponds to a linear content item or anon-demand content item, as further described below.

According to one or more aspects, where a linear program has alreadystarted, the availability of a linear content item may be determined bycalculating the difference between the current time and the scheduledend and/or start time of the program, and the amount of availability maybe expressed as the amount of time remaining in the program (e.g., inseconds, minutes, hours, etc.) or fraction of program remaining (e.g., ahalf, a third, etc.). For example, considering example program 301 ofFIG. 3 for a moment, in a hypothetical situation where program 301 isscheduled to start at 8:00 p.m. and end at 11:00 p.m., and where asearch is performed at 8:11 p.m., the availability of the program may bedetermined to be “169 minutes remaining” and/or “6% elapsed.”

On the other hand, where a linear program has yet to start, theavailability of the linear content item may be determined by calculatingthe difference between the current time and the scheduled start time ofthe program, and once again the amount of availability may be expressedas an amount of time (e.g., in seconds, minutes, hours, days, etc.).Additionally or alternatively, where availability is calculated for alinear program that has yet to start, the availability may be stored asa negative number (e.g., as a number less than zero that essentiallycorresponds to a countdown to the scheduled start time of the program)to indicate that the scheduled start time of the program has yet toarrive. By storing the availability as a negative number in thesesituations, a computing device implementing one or more aspects of thedisclosure may further differentiate between linear programs that havealready started and those that have yet to start. For example,considering example program 304 of FIG. 3 for a moment, in ahypothetical situation where program 304 is scheduled to start at 8:30p.m. and end at 11:00 p.m., the availability of the program may bedetermined to be “−19 minutes” and/or “not started” and/or “starting in19 minutes.” In some arrangements, such a number (e.g., a valuerepresenting program availability) may simply be treated as negative ina formula and/or other availability calculation instead of being storedindependently as a negative number.

As noted above, the manner in which the availability of each on-demandcontent item is calculated may be different from how the availability ofeach linear content item is calculated. According to one or moreaspects, the availability of an on-demand content item may be determinedby calculating the difference between the current time and the scheduledexpiration date of the content (e.g., the last date on which the contentwill be available for on-demand purchase), and as with the availabilityof linear content, this difference may be expressed in seconds, minutes,hours, days, etc. For example, considering example program 401 of FIG. 4for a moment, in a hypothetical situation where program 401 is scheduledto expire on Sep. 24, 2010, and where a search is performed on Sep. 20,2010, the availability of the program may be determined to be “4 daysremaining.” In addition, where an on-demand program is not yet availablefor playback by a user, the availability of such a program may beexpressed as a negative number, similar to how the availability of alinear program that has not yet started may be expressed as a negativenumber.

Referring again to the search method illustrated in FIG. 7, once thetime availability values of the various search results are calculated instep 705, the applicable profiles may be loaded in step 706. Forexample, in step 706, the user's device (e.g., gateway 111) may load theprofiles and user preferences defined by default settings and/or by theconfiguration options set during the configuration method describedabove. These profiles may be stored in and loaded from local memoryincluded in the user's device (e.g., gateway 111) and/or may be storedin and loaded from a remote server (e.g., application server 107) thatcommunicates with the user's device. If, for instance, the searchresults include both linear content items and on-demand content items,then profiles dealing with both linear content and on-demand content maybe determined to be applicable and accordingly may be loaded inperforming this step.

In step 707, one or more of the previously loaded profiles may beapplied to each search result to obtain one or more weighted searchresults. For example, as discussed above, a user may have setpreferences specifying that certain genres and/or types of programsshould be prioritized over other genres and/or types of programs, andthese preferences may be stored in profiles that may be applied to thesearch results in this step to obtain weighted search results.Additionally or alternatively, and as also discussed above, a user mayhave set preferences specifying that certain segments of programmingshould be prioritized over other segments, and these preferences alsomay be stored in profiles that might be applied to the search results inthis step to obtain weighted search results.

In one or more arrangements, applying the profiles and obtainingweighted search results may include performing a weighting algorithm.Performing such a weighting algorithm in turn may include assigning abaseline numerical score to each search result based on the extent towhich (e.g., how strongly) the particular search result's correspondingcontent item matches the user's search criterion (e.g., based on thepercentage of phrases and/or characters in the search criterion that arealso found in the corresponding fields of the content item, such as thecontent item's title, description, etc.), adjusting (e.g., increasing ordecreasing) that numerical score based on the availability time (asdetermined in step 705), and then further adjusting that numerical scorebased on any applicable preferences stored in the user profiles (byagain increasing or decreasing the numerical score as dictated by theuser profiles). The steps of this weighting algorithm may be repeatedfor each of the search results identified in step 703 to obtain the oneor more weighted search results.

For example, a search result that is determined to be a 99% match to thesearch criterion may be assigned a baseline numerical score of 99.Similarly, another search result that is determined to be a 74% match tothe search criterion may be assigned a baseline numerical score of 74,for example. In subsequently adjusting the numerical score of a searchresult based on the availability time of its corresponding content, thenumerical score of the search result may be increased or decreased bypredetermined amounts according to a time-based and content-basedhierarchical scheme, where increasingly desirable content may, forinstance, have its score increased by a greater amount and where lessdesirable content may have its score increased by a lesser amount (orsuch content may have its score decreased). In addition, in such ascheme, it may be desirable to treat different types and/or genres ofcontent differently, because, as further described above, some contentmay become less desirable to a user as the content nears its conclusion(e.g., a prerecorded linear program, such as a movie or sitcom, that isalready underway), while other content may become more desirable to auser as the content nears its conclusion (e.g., a live broadcast of afootball game that is nearing its end). Thus, different types and/orgenres of contents may be subject to different levels of score increasesand decreases under such a hierarchical scheme.

For instance, search results corresponding to live linear programs(e.g., live broadcasts of sporting events that are underway) that haveless than 10 minutes remaining may have their numerical score increasedby 10, while search results corresponding to live linear programs thathave less than 30 minutes remaining, but more than 10 minutes remaining,may have their numerical score increased by 5. As another example,search results corresponding to prerecorded linear programs (e.g.,movies and sitcoms that are underway) that are scheduled to start inless that 10 minutes (and have not yet started) may have their numericalscore increased by 10, while search results corresponding to prerecordedlinear programs that are already underway and/or have less than apredetermined amount of time left (e.g., 30 minutes, 10 minutes, etc.)may have their numerical score decreased by 10. As still anotherexample, search results corresponding to on-demand programs that arescheduled to become unavailable in less than three days may have theirnumerical score increased by 10, while on-demand programs that arescheduled to remain available for at least fourteen additional days mayhave their numerical score decreased by 10. The values and hierarchicalarrangement in these examples is only illustrative, and any desiredamounts and hierarchical levels may be used (e.g., to emphasize and/ordeemphasize any desired types and/or genres of programs).

For example, each different type of content may have differentavailability factors that affect the ranking of search resultscorresponding to the particular type of content. For instance, apossible availability factor that may affect the ranking of searchresults corresponding to live linear content (e.g., a broadcast of alive sporting event) may be the amount of time remaining in such content(e.g., the amount of time left in the sporting event). Similarly, theamount of time remaining in content may also be an availability factorthat affects the ranking of search results corresponding to prerecordedlinear content (e.g., a prerecorded linear program, such as a movie orsitcom), although this factor may have a different effect on the rankingof prerecorded linear content than it does on the ranking of live linearcontent (e.g., as there is less time remaining in a particularprerecorded linear program, the ranking of such a program may decrease,whereas when there is less time remaining in a live linear program, theranking of such a program may increase). Another possible availabilityfactor that may affect the ranking of search results corresponding toprerecorded linear content (e.g., a prerecorded linear program, such asa movie or sitcom) may be the amount of time until the content isscheduled to start (e.g., how much time remains until the program isscheduled to be transmitted or broadcast). Additionally, a possibleavailability factor that may affect the ranking of search resultscorresponding to on-demand content may be amount of time for which theon-demand content will remain available for playback.

Subsequently, in further adjusting the numerical scores of searchresults based on any applicable preferences stored in the user profiles,for instance, the numerical scores may be increased or decreased bypredetermined amounts according to the various priority levels and/orranks assigned by the user to different types and/or genres of content.For example, search results that correspond to content items fallinginto types and/or genres to which the user has assigned a “High”priority may have their numerical score increased by 5. Similarly, inthis example, search results that correspond to content items fallinginto types and/or genres to which the user has assigned a “Low” prioritymay have their numerical score decreased by 5, and search results thatcorrespond to content items falling into types and/or genres to whichthe user has assigned a “Medium” priority might not have their numericalscore changed again at this point. Here again, the values andhierarchical arrangement in these examples is only illustrative, and anydesired amounts and hierarchical levels may be used.

In this manner, one or more user profiles may be applied and weightedsearch results may be obtained, and the weighted search results mayresult in adjustments to the rankings which may otherwise be based onavailability time. For example, in a hypothetical situation where theuser searches for “New York” at 8:11 p.m., as in the illustrativesituation represented by the example programming timeline 300 of FIG. 3,programs 301, 302, 303, and 304 might match the search criteria andaccordingly be considering search results. When sorting these searchresults only based on time availability (e.g., before applying userprogram prioritization preferences), the user's device (e.g., gateway111) might rank the live baseball game corresponding to program 302 overthe live football game corresponding to program 301 because between thetwo live linear content items, program 302 may be closer to itsscheduled end time and accordingly may be a higher priority according tothe default profiles described above. If, however, the user also setpreferences similar to those illustrated in FIG. 10, for example, where“Live Football Games” are prioritized over other “Live Sports Games,”then in applying the profiles to obtain weighted search results in step707, the live football game corresponding to program 301 might be rankedhigher than the live baseball game corresponding to program 302 becausethe user preferences defined by the profiles specify that the broadcastof the live football game should be given higher priority than otherlive sports programming (even though the program 302 corresponding tothe live baseball game may be closer to its scheduled end time).

Referring again to the search method illustrated in FIG. 7, in step 708,the weighted search results may be ranked. In one or more arrangements,ranking the search results in step 708 may generally involve placing thesearch results in an order dictated by the various default profiles anduser preferences described above. For example, the user's device (e.g.,gateway 111) may rank the search results based on their weighted scores(e.g., the scores determined in step 707) and/or in accordance withdefault profiles and/or other user settings. Considering the example inthe preceding paragraph involving the live football game and the livebaseball game, for instance, the user's device may rank the livefootball game higher than the live baseball game based on determiningthat the live football game has a higher priority than the live baseballgame in view of the availability of each program and the previouslyapplied profiles causing the football game to have a higher weightedscore than the live baseball game. The other search results may besimilarly ranked, for instance, and the ordered list may be stored inmemory by the user's device (e.g., gateway 111) for further processingand/or display.

Subsequently, in step 709, the ranked search results may be displayed.In one or more arrangements, the user's device (e.g., gateway 111) maydisplay or cause to be displayed the ranked search results via a userinterface, such as user interface 1700 of FIG. 17, for instance, whichis further described below. Thereafter, the search method illustrated inFIG. 7 may end, and the process may return to the central processingloop illustrated in FIG. 5.

Thus, referring again to the central processing loop illustrated in FIG.5, whether or not the search method was performed, content may bedisplayed and subsequent user selections may be processed. For example,the user's device (e.g., gateway 111) may display linear and/oron-demand content received from a remote server (e.g., a server atcentral office 103), in addition to continuing to process userselections, such as requests to modify user preferences andconfiguration settings, requests to search for content, and/or otherrequests that the user's device might receive (e.g., requests to changechannels, adjust volume, etc.). Subsequently, the process may return tostep 502 of the processing loop (described loop) in which it may bedetermined whether a configuration request was received. The centralprocessing loop of FIG. 5 may continue to be executed, for instance,until the user's device (e.g., gateway 111) is powered off or placedinto a standby mode.

Having described the central processing loop and various methods anduser interfaces that may be performed and/or used in implementing thefunctionalities described herein, some additional functionalities anduser interfaces that illustrate examples of how a user might experiencethese functionalities will now be described.

For instance, a user's interaction with the functionalities describedabove might begin when the user is viewing an electronic program guideand deciding what to watch. An example of such an electronic programguide may be seen in the example user interface 1400 illustrated in FIG.14. In some instances, rather than entering a search criterion (as inone or more of the examples described above), a user may wish to simplysort all currently playing, upcoming, and otherwise available programsbased on availability, default profiles, and the user's preferences.

For example, user interface 1400 may include program listings 1401 andone or more command buttons (e.g., buttons 1402 and 1403). In at leastone arrangement, button 1402 may perform an “auto sort” function, whichmay involve displaying a listing of one or more currently playing orupcoming programs that is ranked according to availability, defaultprofiles, and/or user preferences, as described above. In addition,selecting button 1402 may cause the example user interface illustratedin FIG. 15 to be displayed.

If the user selects the “auto sort” button 1402, the user's device(e.g., gateway 111) may essentially perform the search method describedabove, except that the search criterion might be an empty set. Thus, inidentifying matches, the user's device might identify all currentlyplaying, upcoming, and otherwise available programs as matches, andsubsequently may sort and rank these programs based on availability, thedefault profiles, and the user's preferences.

Therefore, in one or more arrangements, user interface 1500 of FIG. 15may include a listing 1501 of one or more recommended programs. Asnoted, the listing 1501 may be populated automatically, for instance,with search results identified and ranked by performing the searchmethod described above. In addition, additional information about eachrecommended program included the listing 1501 may be displayed via userinterface 1500. For example, each recommended program in the listing1501 may be displayed with a corresponding channel number 1502 a, aprogram title 1502 b, and program status information 1502 c. In one ormore arrangements, the program status information 1502 c may includeavailability information, such as how much of the program has elapsed(if any), how long until the program starts (if it has yet to begin),when the program is scheduled to end or otherwise become unavailable,and/or the like.

Referring again to FIG. 14, if a user were to select the “search” button1403 of user interface 1400 instead of the “auto sort” button of 1402,then in at least one arrangement, a “search” function may be performed,which may involve receiving a search criterion from the user (and/orotherwise performing the search method described above) and/ordisplaying the example user interface illustrated in FIG. 16.

FIG. 16 illustrates an example user interface 1600 that includes asearch box 1601 by which a search criterion may be received from a useraccording to one or more aspects described herein. For instance, a usermay enter a search phrase (e.g., “New York”) into search box 1601 andsubsequently may select the search button 1602 to command the user'sdevice (e.g., gateway 111) to search for content associated with thesearch phrase.

For example, considering the example programming timeline 300 of FIG. 3for a moment, if a user were to search for the phrase “New York” at 8:11p.m., programs 301, 302, 303, and 304 might match as search results andsubsequently be ranked based on their availability and in accordancewith any default profiles and user preferences, per the above-describedsearch method. In displaying the search results, the user's device maydisplay (or cause to be displayed) the example user interface 1700illustrated in FIG. 17.

In one or more arrangements, user interface 1700 may include a rankedlisting of search results, and each search result may correspond to aprogram. Additional information also may be displayed about each searchresult included in the listing. For example, each search result in thelisting may be displayed with a corresponding channel number 1701 a, aprogram title 1701 b, and program status information 1701 c.Additionally or alternatively, user interface 1700 may include a changesort button 1702, which may allow a user to modify user preferences(e.g., by initiating the configuration method), as well as a new searchbutton 1703, which may allow the user to perform a new search (e.g., bydisplaying the example user interface illustrated in FIG. 16 againand/or by performing the search method described above).

Aspects of the disclosure have been described in terms of illustrativeembodiments thereof. While illustrative systems and methods as describedherein embodying various aspects of the present disclosure are shown, itwill be understood by those skilled in the art, that the disclosure isnot limited to these embodiments. Modifications may be made by thoseskilled in the art, particularly in light of the foregoing teachings.For example, each of the features of the aforementioned illustrativeexamples may be utilized alone or in combination or subcombination withelements of the other examples. For example, any of the above describedsystems and methods or parts thereof may be combined with the othermethods and systems or parts thereof described above. For example, thesteps illustrated in the illustrative figures may be performed in otherthan the recited order, and one or more steps illustrated may beoptional in accordance with aspects of the disclosure. It will also beappreciated and understood that modifications may be made withoutdeparting from the true spirit and scope of the present disclosure. Thedescription is thus to be regarded as illustrative instead ofrestrictive on the present disclosure.

1. A method, comprising: ranking two or more search results based on theextent to which each search result matches at least one search criterionand based on the amount of time that content corresponding to eachsearch result will remain available.
 2. The method of claim 1, whereincontent with less availability time remaining is ranked higher thancontent with more availability time remaining.
 3. The method of claim 1,wherein the ranking is also based on a genre of the content beingranked.
 4. The method of claim 3, wherein availability is weighteddifferently in ranking content of different genres.
 5. The method ofclaim 4, wherein for content of a first genre, the search results areranked in proportion to the amount of time that the contentcorresponding to each search result will remain available, and wherein,for content of a second genre different from the first genre, the searchresults are ranked in inverse proportion to the amount of time that thecontent corresponding to each search result will remain available. 6.The method of claim 1, further comprising: gradually increasing the rankof a live sporting event included in the search results as time elapses;and gradually decreasing the rank of a movie included in the searchresults as time elapses.
 7. The method of claim 1, wherein the contentis linear video programming, wherein at least two programs included inthe search results are live sporting events, and wherein the at leasttwo programs are ranked in inverse proportion to their availability timeremaining.
 8. The method of claim 1, wherein the content is video ondemand programming, wherein at least two programs included in the searchresults are movies, and wherein the at least two programs are ranked indirect proportion to their availability time remaining.
 9. The method ofclaim 1, wherein the content is linear video programming, and whereincontent remains available until a scheduled end time associated with thecontent.
 10. The method of claim 1, wherein the content is video ondemand programming, and wherein the content remains available during awindow of time in which the content is accessible at the request of auser.
 11. An apparatus, comprising: at least one processor; and memorystoring computer-readable instructions that, when executed by the atleast one processor, cause the apparatus to: rank two or more searchresults based on the extent to which each search result matches at leastone search criterion and based on the amount of time that contentcorresponding to each search result will remain available.
 12. Theapparatus of claim 11, wherein content with less availability timeremaining is ranked higher than content with more availability timeremaining.
 13. The apparatus of claim 11, wherein the ranking is alsobased on a genre of the content being ranked.
 14. The apparatus of claim13, wherein availability is weighted differently in ranking content ofdifferent genres.
 15. The apparatus of claim 14, wherein for content ofa first genre, the search results are ranked in proportion to the amountof time that the content corresponding to each search result will remainavailable, and wherein, for content of a second genre different from thefirst genre, the search results are ranked in inverse proportion to theamount of time that the content corresponding to each search result willremain available.
 16. The apparatus of claim 11, wherein the memorystores additional computer-readable instructions that, when executed bythe at least one processor, further cause the apparatus to: graduallyincrease the rank of a live sporting event included in the searchresults as time elapses; and gradually decrease the rank of a movieincluded in the search results as time elapses.
 17. The apparatus ofclaim 11, wherein the content is linear video programming, wherein atleast two programs included in the search results are live sportingevents, and wherein the at least two programs are ranked in inverseproportion to their availability time remaining.
 18. The apparatus ofclaim 11, wherein the content is video on demand programming, wherein atleast two programs included in the search results are movies, andwherein the at least two programs are ranked in direct proportion totheir availability time remaining.
 19. The apparatus of claim 11,wherein the content is linear video programming, and wherein contentremains available until a scheduled end time associated with thecontent.
 20. The apparatus of claim 11, wherein the content is video ondemand programming, and wherein the content remains available during awindow of time in which the content is accessible at the request of auser.